package models

import (
	"database/sql/driver"
	"encoding/json"
)

type Permission struct {
	RoleId          string  `json:"roleId"`
	PermissionId    string  `json:"permissionId"`
	PermissionName  string  `json:"permissionName"`
	ActionEntitySet Actions `json:"actionEntitySet" gorm:"column:actions;comment:功能集合;"`
	DataAccess      string  `json:"dataAccess"`
}

type Action struct {
	Name         string `json:"name"`
	Describe     string `json:"describe"`
	DefaultCheck bool   `json:"defaultCheck"`
}

type Actions []Action

// 反序列化：功能集合
func (j *Actions) Scan(value interface{}) error {
	bytes, _ := value.([]byte)

	err := json.Unmarshal(bytes, j)
	return err
}

// 序列化：功能集合
func (j Actions) Value() (driver.Value, error) {
	return json.Marshal(j)
}
